TSTP Solution File: PUZ081^2 by cvc5---1.0.5
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : cvc5---1.0.5
% Problem : PUZ081^2 : TPTP v8.1.2. Bugfixed v7.1.0.
% Transfm : none
% Format : tptp
% Command : do_cvc5 %s %d
% Computer : n009.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Thu Aug 31 13:13:18 EDT 2023
% Result : Theorem 0.20s 0.53s
% Output : Proof 0.20s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.13 % Problem : PUZ081^2 : TPTP v8.1.2. Bugfixed v7.1.0.
% 0.07/0.14 % Command : do_cvc5 %s %d
% 0.14/0.35 % Computer : n009.cluster.edu
% 0.14/0.35 % Model : x86_64 x86_64
% 0.14/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35 % Memory : 8042.1875MB
% 0.14/0.35 % OS : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35 % CPULimit : 300
% 0.14/0.35 % WCLimit : 300
% 0.14/0.35 % DateTime : Sat Aug 26 22:05:35 EDT 2023
% 0.14/0.35 % CPUTime :
% 0.20/0.49 %----Proving TH0
% 0.20/0.50 %------------------------------------------------------------------------------
% 0.20/0.50 % File : PUZ081^2 : TPTP v8.1.2. Bugfixed v7.1.0.
% 0.20/0.50 % Domain : Puzzles
% 0.20/0.50 % Problem : 1 of http://philosophy.hku.hk/think/logic/knight.php
% 0.20/0.50 % Version : Especial.
% 0.20/0.50 % English : A very special island is inhabited only by knights and knaves.
% 0.20/0.50 % Knights always tell the truth, and knaves always lie. You meet two
% 0.20/0.50 % inhabitants: Zoey and Mel. Zoey tells you that Mel is a knave. Mel
% 0.20/0.50 % says, `Neither Zoey nor I are knaves'. Who is a knight and who is
% 0.20/0.50 % a knave?
% 0.20/0.50
% 0.20/0.50 % Refs :
% 0.20/0.50 % Source : [TPTP]
% 0.20/0.50 % Names :
% 0.20/0.50
% 0.20/0.50 % Status : Theorem
% 0.20/0.50 % Rating : 0.15 v8.1.0, 0.09 v7.5.0, 0.14 v7.4.0, 0.22 v7.2.0, 0.12 v7.1.0
% 0.20/0.50 % Syntax : Number of formulae : 11 ( 0 unt; 5 typ; 0 def)
% 0.20/0.50 % Number of atoms : 19 ( 4 equ; 0 cnn)
% 0.20/0.50 % Maximal formula atoms : 4 ( 3 avg)
% 0.20/0.50 % Number of connectives : 31 ( 3 ~; 2 |; 6 &; 17 @)
% 0.20/0.50 % ( 0 <=>; 2 =>; 0 <=; 1 <~>)
% 0.20/0.50 % Maximal formula depth : 7 ( 6 avg)
% 0.20/0.50 % Number of types : 2 ( 0 usr)
% 0.20/0.50 % Number of type conns : 6 ( 6 >; 0 *; 0 +; 0 <<)
% 0.20/0.50 % Number of symbols : 6 ( 5 usr; 2 con; 0-2 aty)
% 0.20/0.50 % Number of variables : 7 ( 0 ^; 5 !; 2 ?; 7 :)
% 0.20/0.50 % SPC : TH0_THM_EQU_NAR
% 0.20/0.50
% 0.20/0.50 % Comments : See http://philosophy.hku.hk/think/logic/knight.php
% 0.20/0.50 % : This version finds the types of Zoey and Mel
% 0.20/0.50 % Bugfixes : v7.1.0 - Fixed the conjecture.
% 0.20/0.50 %------------------------------------------------------------------------------
% 0.20/0.50 %----Type declarations
% 0.20/0.50 thf(mel_type,type,
% 0.20/0.50 mel: $i ).
% 0.20/0.50
% 0.20/0.50 thf(zoey_type,type,
% 0.20/0.50 zoey: $i ).
% 0.20/0.50
% 0.20/0.50 thf(knight_type,type,
% 0.20/0.50 knight: $i > $o ).
% 0.20/0.50
% 0.20/0.50 thf(knave_type,type,
% 0.20/0.50 knave: $i > $o ).
% 0.20/0.50
% 0.20/0.50 thf(says_type,type,
% 0.20/0.50 says: $i > $o > $o ).
% 0.20/0.50
% 0.20/0.50 %----A very special island is inhabited only by knights and knaves.
% 0.20/0.50 thf(knights_xor_knaves,axiom,
% 0.20/0.50 ! [P: $i] :
% 0.20/0.50 ( ( knight @ P )
% 0.20/0.50 <~> ( knave @ P ) ) ).
% 0.20/0.50
% 0.20/0.50 %----Knights always tell the truth
% 0.20/0.50 thf(knights_tell_truth,axiom,
% 0.20/0.50 ! [P: $i,S: $o] :
% 0.20/0.50 ( ( ( knight @ P )
% 0.20/0.50 & ( says @ P @ S ) )
% 0.20/0.50 => S ) ).
% 0.20/0.50
% 0.20/0.50 %----Knaves always lie
% 0.20/0.50 thf(knaves_lie,axiom,
% 0.20/0.50 ! [P: $i,S: $o] :
% 0.20/0.50 ( ( ( knave @ P )
% 0.20/0.50 & ( says @ P @ S ) )
% 0.20/0.50 => ~ S ) ).
% 0.20/0.50
% 0.20/0.50 %----Zoey says 'Mel is a knave'
% 0.20/0.50 thf(zoey_speaks,axiom,
% 0.20/0.50 says @ zoey @ ( knave @ mel ) ).
% 0.20/0.50
% 0.20/0.50 %----Mel says 'Neither Zoey nor I are knaves.'
% 0.20/0.50 thf(mel_speaks,axiom,
% 0.20/0.50 ( says @ mel
% 0.20/0.50 @ ( ~ ( knave @ zoey )
% 0.20/0.50 & ~ ( knave @ mel ) ) ) ).
% 0.20/0.50
% 0.20/0.50 %----What are Zoey and Mel
% 0.20/0.50 thf(what_are_zoey_and_mel,conjecture,
% 0.20/0.50 ? [TZ: $i > $o,TM: $i > $o] :
% 0.20/0.50 ( ( ( TZ = knight )
% 0.20/0.50 | ( TZ = knave ) )
% 0.20/0.50 & ( ( TM = knight )
% 0.20/0.50 | ( TM = knave ) )
% 0.20/0.50 & ( TZ @ zoey )
% 0.20/0.50 & ( TM @ mel ) ) ).
% 0.20/0.50
% 0.20/0.50 %------------------------------------------------------------------------------
% 0.20/0.50 ------- convert to smt2 : /export/starexec/sandbox/tmp/tmp.mFxqyCzzri/cvc5---1.0.5_29679.p...
% 0.20/0.50 (declare-sort $$unsorted 0)
% 0.20/0.50 (declare-fun tptp.mel () $$unsorted)
% 0.20/0.50 (declare-fun tptp.zoey () $$unsorted)
% 0.20/0.50 (declare-fun tptp.knight ($$unsorted) Bool)
% 0.20/0.50 (declare-fun tptp.knave ($$unsorted) Bool)
% 0.20/0.50 (declare-fun tptp.says ($$unsorted Bool) Bool)
% 0.20/0.50 (assert (forall ((P $$unsorted)) (xor (@ tptp.knight P) (@ tptp.knave P))))
% 0.20/0.50 (assert (forall ((P $$unsorted) (S Bool)) (=> (and (@ tptp.knight P) (@ (@ tptp.says P) S)) S)))
% 0.20/0.50 (assert (forall ((P $$unsorted) (S Bool)) (=> (and (@ tptp.knave P) (@ (@ tptp.says P) S)) (not S))))
% 0.20/0.50 (assert (@ (@ tptp.says tptp.zoey) (@ tptp.knave tptp.mel)))
% 0.20/0.50 (assert (@ (@ tptp.says tptp.mel) (and (not (@ tptp.knave tptp.zoey)) (not (@ tptp.knave tptp.mel)))))
% 0.20/0.50 (assert (not (exists ((TZ (-> $$unsorted Bool)) (TM (-> $$unsorted Bool))) (and (or (= TZ tptp.knight) (= TZ tptp.knave)) (or (= TM tptp.knight) (= TM tptp.knave)) (@ TZ tptp.zoey) (@ TM tptp.mel)))))
% 0.20/0.50 (set-info :filename cvc5---1.0.5_29679)
% 0.20/0.50 (check-sat-assuming ( true ))
% 0.20/0.50 ------- get file name : TPTP file name is PUZ081^2
% 0.20/0.50 ------- cvc5-thf : /export/starexec/sandbox/solver/bin/cvc5---1.0.5_29679.smt2...
% 0.20/0.53 --- Run --ho-elim --full-saturate-quant at 10...
% 0.20/0.53 % SZS status Theorem for PUZ081^2
% 0.20/0.53 % SZS output start Proof for PUZ081^2
% 0.20/0.53 (
% 0.20/0.53 (let ((_let_1 (not (exists ((TZ (-> $$unsorted Bool)) (TM (-> $$unsorted Bool))) (and (or (= TZ tptp.knight) (= TZ tptp.knave)) (or (= TM tptp.knight) (= TM tptp.knave)) (@ TZ tptp.zoey) (@ TM tptp.mel)))))) (let ((_let_2 (@ tptp.knave tptp.mel))) (let ((_let_3 (not _let_2))) (let ((_let_4 (not (@ tptp.knave tptp.zoey)))) (let ((_let_5 (forall ((P $$unsorted)) (xor (@ tptp.knight P) (@ tptp.knave P))))) (let ((_let_6 (forall ((P $$unsorted)) (= (not (ho_3 k_2 P)) (ho_3 k_4 P))))) (let ((_let_7 (ho_3 k_2 tptp.mel))) (let ((_let_8 (not _let_7))) (let ((_let_9 (ho_3 k_4 tptp.mel))) (let ((_let_10 (= _let_9 _let_8))) (let ((_let_11 (forall ((u |u_(-> $$unsorted Bool)|) (e Bool) (i $$unsorted)) (not (forall ((v |u_(-> $$unsorted Bool)|)) (not (forall ((ii $$unsorted)) (= (ho_3 v ii) (ite (= i ii) e (ho_3 u ii)))))))))) (let ((_let_12 (forall ((x |u_(-> $$unsorted Bool)|) (y |u_(-> $$unsorted Bool)|)) (or (not (forall ((z $$unsorted)) (= (ho_3 x z) (ho_3 y z)))) (= x y))))) (let ((_let_13 (forall ((u |u_(-> Bool Bool)|) (e Bool) (i Bool)) (not (forall ((v |u_(-> Bool Bool)|)) (not (forall ((ii Bool)) (= (ho_7 v ii) (ite (= i ii) e (ho_7 u ii)))))))))) (let ((_let_14 (forall ((x |u_(-> Bool Bool)|) (y |u_(-> Bool Bool)|)) (or (not (forall ((z Bool)) (= (ho_7 x z) (ho_7 y z)))) (= x y))))) (let ((_let_15 (forall ((u |u_(-> $$unsorted Bool Bool)|) (e |u_(-> Bool Bool)|) (i $$unsorted)) (not (forall ((v |u_(-> $$unsorted Bool Bool)|)) (not (forall ((ii $$unsorted)) (= (ho_6 v ii) (ite (= i ii) e (ho_6 u ii)))))))))) (let ((_let_16 (forall ((x |u_(-> $$unsorted Bool Bool)|) (y |u_(-> $$unsorted Bool Bool)|)) (or (not (forall ((z $$unsorted)) (= (ho_6 x z) (ho_6 y z)))) (= x y))))) (let ((_let_17 (EQ_RESOLVE (ASSUME :args (_let_5)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_5 SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (forall ((P $$unsorted)) (= (@ tptp.knave P) (not (@ tptp.knight P)))) _let_6))))))) (let ((_let_18 (AND_ELIM (MACRO_SR_PRED_TRANSFORM (AND_INTRO _let_17 (PREPROCESS :args ((and _let_16 _let_15 _let_14 _let_13 _let_12 _let_11)))) :args ((and _let_6 _let_16 _let_15 _let_14 _let_13 _let_12 _let_11))) :args (0)))) (let ((_let_19 (not _let_10))) (let ((_let_20 (not _let_9))) (let ((_let_21 (and _let_8 _let_20))) (let ((_let_22 (ho_3 k_4 tptp.zoey))) (let ((_let_23 (not _let_22))) (let ((_let_24 (ho_3 k_2 tptp.zoey))) (let ((_let_25 (not _let_24))) (let ((_let_26 (and _let_25 _let_23))) (let ((_let_27 (= _let_22 _let_25))) (let ((_let_28 (not _let_26))) (let ((_let_29 (_let_6))) (let ((_let_30 (not _let_27))) (let ((_let_31 (or))) (let ((_let_32 (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (ASSUME :args (_let_1)) (TRANS (MACRO_SR_EQ_INTRO :args (_let_1 SB_DEFAULT SBA_FIXPOINT)) (PREPROCESS :args ((= (or (and (not (@ tptp.knight tptp.zoey)) _let_4) (and (not (@ tptp.knight tptp.mel)) _let_3)) (or _let_26 _let_21)))))) :args ((or _let_21 _let_26))) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_EQUIV_POS2 :args (_let_27)) (CONG (REFL :args (_let_30)) (REFL :args (_let_22)) (MACRO_SR_PRED_INTRO :args ((= (not _let_25) _let_24))) :args _let_31)) :args ((or _let_22 _let_24 _let_30))) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_17 :args (tptp.zoey QUANTIFIERS_INST_CBQI_CONFLICT)) :args _let_29))) _let_18 :args (_let_27 false _let_6)) (REORDERING (CNF_AND_POS :args (_let_26 1)) :args ((or _let_23 _let_28))) (REORDERING (CNF_AND_POS :args (_let_26 0)) :args ((or _let_25 _let_28))) :args (_let_28 false _let_27 true _let_22 true _let_24)) :args (_let_21 true _let_26)))) (let ((_let_33 (not _let_21))) (SCOPE (SCOPE (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_17 :args (tptp.mel QUANTIFIERS_INST_CBQI_CONFLICT)) :args _let_29))) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_EQUIV_POS2 :args (_let_10)) (CONG (REFL :args (_let_19)) (REFL :args (_let_9)) (MACRO_SR_PRED_INTRO :args ((= (not _let_8) _let_7))) :args _let_31)) :args ((or _let_9 _let_7 _let_19))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_AND_POS :args (_let_21 1)) :args ((or _let_20 _let_33))) _let_32 :args (_let_20 false _let_21)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_AND_POS :args (_let_21 0)) :args ((or _let_8 _let_33))) _let_32 :args (_let_8 false _let_21)) :args (_let_19 true _let_9 true _let_7)) _let_18 :args (false true _let_10 false _let_6)) :args (_let_5 (forall ((P $$unsorted) (S Bool)) (=> (and (@ tptp.knight P) (@ (@ tptp.says P) S)) S)) (forall ((P $$unsorted) (S Bool)) (=> (and (@ tptp.knave P) (@ (@ tptp.says P) S)) (not S))) (@ (@ tptp.says tptp.zoey) _let_2) (@ (@ tptp.says tptp.mel) (and _let_4 _let_3)) _let_1 true))))))))))))))))))))))))))))))))))))
% 0.20/0.53 )
% 0.20/0.53 % SZS output end Proof for PUZ081^2
% 0.20/0.53 % cvc5---1.0.5 exiting
% 0.20/0.53 % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------